// 引入第三方模块
const express = require('express');
// 引入连接池模块
const pool = require('../pool.js');
// 创建路由器对象
const r = express.Router();
// 分类查询
r.get('/rid', (req, res, next) => {
    let obj = req.query.rid;
    console.log(obj);
    // 执行SQL命令
    pool.query("select * from recommend", [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        console.log(result);
        if (result.length === 0) {
            res.send({code: 500,msg: "查询失败"});
        } else {
            res.send({code: 200,msg: "查询成功",data: result});
        }
    })
})
// 增加分类
r.post('/add', (req, res, next) => {
    let obj = req.body;
    console.log(obj);
    // 增加数据
    pool.query('insert into recommend set ?', [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        if (result.length === 0) {
            res.send({code: 500,msg: '增加分类失败'});
        } else {
            res.send({code: 200, msg: '增加分类成功'});
        }
    })
});

// 删除分类
r.delete('/did', (req, res, next) => {
    let obj = req.query.rid;
    console.log(obj);
    // 执行sql命令
    let sql = 'delete from recommend where rid = ?'
    pool.query(sql, [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        console.log(result);
        if (result.affectedRows === 0) {
            res.send({ code: 500, msg: '删除失败' });
        } else {
            res.send({ code: 200, msg: '删除成功' });
        }
    })
});
r.put('/put', (req, res, next) => {
    //获取post的数据
    let obj = req.body;
    console.log(obj);
    // 验证各项是否为空 遍历对象
    let i = 400;//用于记录状态码
    for (let k in obj) {
        // 每次遍历一个属性 状态码加一
        i++;
        // k代表属性名 obj[k]代表属性值
        //如果属性值为空 提示属性名这项 不能为空
        if (!obj[k]) {
            res.send({ code: i, msg: `${k}不能为空` });
            return;
        }
    }
    // 执行sql语句命令 修改用户数据
    pool.query('update recommend set ? where rid=?', [obj, obj.rid], (err, result) => {
        if (err) {
            // 如果有错交于下一个中间件处理
            next(err);
        }
        console.log(result);
        //如果对象下的affectedRows的值是0说明修改失败
		//否则修改成功
        if (result.affectedRows === 0) {
            res.send({ code: 201, msg: '修改失败' });
        } else {
            res.send({code:200,msg:'修改成功'});
        }
     });
})
// 导出路由器对象
module.exports = r;